/*
 * io.h
 *
 *  Created on: 2017年5月1日
 *      Author: chenss
 */

#ifndef APP_INC_IO_H_
#define APP_INC_IO_H_

#include "main.h"
#include "iostream.h"
#include "message_queue.h"

typedef enum
{
    IO_Null,
    IO_Lighting,
    IO_Lock1,
    IO_Lock2,
    IO_Lock3,
    IO_Volume,
    IO_Vbat,
    IO_Vibration,
    IO_VibrationFreq,
    IO_Beep,
    IO_Led,
    IO_IrDetectStatus,

    IO_WatchDogValue,
    IO_Max = IO_WatchDogValue,
}IO_t;


void IO_Init(void);
int IO_ShellSet(Stream_t *stream, int argc, char *argv[]);
int IO_ShellGet(Stream_t *stream, int argc, char *argv[]);
void IO_Changed(IO_t io, int value);
void IO_OnNotify(MsgQueue_Msg_t *msg);
void IO_RemoteSet(IO_t io, int value);
int IO_RemoteGet(IO_t io);
//int IO_Get(IO_t io);
void IO_Request(IO_t io);

void IO_OnVibrationUpdate(MsgQueue_Msg_t *msg);
void IO_OnMonitor(void);

#endif /* APP_INC_IO_H_ */
